Computer networks are used to transmit and receive information between network-connected devices. Computer networks can include local area networks, wide area networks, or amalgamations of networks, such as what is known as the Internet. For example, computer networks are used in corporate data centers to connect large numbers of servers together. Such networks can use the Internet Protocol (IP) Suite to organize and format data that is sent across a network. One version of the IP suite is IPv4, which utilizes 32 bits for network addresses. Another version of the IP suite is IPv6, which utilizes 128 bits for network addresses.
Generally, devices on a network can have a link layer address and a network address. The link layer address can be a hardware address that is specific to a particular device or networking card. In the case of Ethernet, a link layer address can be a Media Access Control (MAC) address. A network address is a logical address, and can be configured for or assigned to a particular device. In the case of IP, the network address is an IP address. When a device sends a packet of data to another device, it generally needs both a link layer address and a network address to properly address the packet. The Address Resolution Protocol (ARP) can be used by devices to determine a link layer/hardware address associated with a network address.
An IP network can include multiple subnets. A subnet is defined based on a subnet mask. The subnet mask can indicate which network addresses are reachable directly by a device. Typically, other addresses must be reached by way of a gateway device, such as a network switch or a network router. When a packet is addressed to a network address outside of the local network and the packet is sent via a gateway device, the link layer address used can be the gateway device's link layer address.